package datatype;

import redis.clients.jedis.Jedis;

/**
 * 使用 HyperLogLog 统计 10000 个不重复元素的基数，并计算统计结果的准确率和误差率
 * @author:         MI
 * @email:          448341911@qq.com
 * @createTime:     2025/8/23 23:42
 * @updateUser:     MI
 * @updateTime:     2025/8/23 23:42
 * @updateRemark:   修改内容
 * @version:        1.0
 */
public class HyperLogLogTest {
    public static void main(String[] args) {
        Jedis jedis = new Jedis("192.168.110.36", 6379);
        // 关键步骤：进行密码认证（请替换为你的Redis实际密码）
        jedis.auth("seata@user123");
        float size = 10000;

        for (int i = 0; i < size; i++) {
            jedis.pfadd("hll", "hll-" + i);
        }
        long total = jedis.pfcount("hll");
        System.out.println(String.format("统计个数: %s", total));
        System.out.println(String.format("正确率: %s", (total / size)));
        System.out.println(String.format("误差率: %s", 1 - (total / size)));
        jedis.close();
    }
}
